Systems, methods and apparatus for assessing compliance and federating databases

ABSTRACT

Systems, methods, and apparatus as discussed herein, provide for enabling a user to select containers and parent level requirements to be retrieved. A navigation panel is provided that enables a user to navigate through the selected containers. A sieve module filters non applicable requirements in the containers based on the selected parent level requirements. The system further joins and integrates compliance information stored within in the Compliance Database, and the associated requirements stored in the containers. The system further stores, manages and reports compliance information associated with specific requirements located in the identified container. Additionally, a federation module may enable user to link requirements located in different containers, and may copy requirements from one container and paste into another container.

RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.12/166,103 which is related to and claims priority to U.S. ProvisionalApplication No. 60/929,539 filed on Jul. 2, 2007, entitled “SYSTEMS ANDMETHODS FOR ASSESSING COMPLIANCE”, which is expressly incorporatedherein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates generally to networked applications and morespecifically, to systems and methods of assessing compliance andfederating database contents.

2. Description of Related Art

Large complex sets of requirements, sometimes known as architectures,are developed by organizations desiring to influence or guide thedirection of entities (e.g., systems, programs, policies, an agencyetc.) within those organizations. These architectures, here within arereferred to as containers, are typically highly structured andhierarchical; defining multiple levels of parent to child relationshipsbetween requirements in order to provide context and understanding ofthose requirements. The information in containers may be stored in acomputer aided software engineering (CASE) tool, relational database,XML document or a set of XML documents.

Often, entities (e.g., systems, programs, policies, agencies etc.) arerequired to demonstrate compliance to an architecture, in most casesonly to a sub set of the requirements in the architecture. This howeveris not a simple task due to the complexity and volume of therequirements. Additionally, the tools used to create these requirementshave not been intended to be used for the purpose of demonstratingcompliance.

This leaves individuals responsible for the entities within theorganizations with two primary options: manually perform a complianceassessment or customize tools in which the requirements were developedto capture compliance related information. Both of these options areimpractical and inefficient. Manually performing a compliance assessmentrequires an individual to 1) physically create a new spreadsheet ordatabase, 2) search for the appropriate requirements, 3) duplicate, bymanually copying, requirements from the source requirements databaseinto that new spreadsheet or database and 4) record the complianceinformation for each of those requirements. CASE tools used to buildthese architectures were designed to facilitate building monolithicsystems or software applications not groups of systems or applications,certainly not demonstrating compliance of many entities to thearchitecture. As a result, these tools require radical changes to theirconfiguration and functional enhancements in order to capture complianceinformation for more than one entity. To further complicate the issue itis possible and common that an entity is required to comply with morethan one architectures or set of requirements (i.e., containers).

As such, there is a need for a method, system and apparatus that enablesa user to easily identify appropriate requirements and indicatecompliance with the identified requirements. There is also a need toshow relationships between two or more requirements that are stored indifferent containers.

SUMMARY OF THE INVENTION

Systems, methods, apparatus and computer-readable mediums, consistentwith the principles of some embodiments of the invention provide forcreating a filter to extract requirement information from a remotedatabase, the method comprising creating and executing a first query ata local database to retrieve at least one parent level object previouslyselected by a user; retrieving the at least one parent level objectbased on the executed query; obtaining meta data from a local database,the meta data relating to the remote database and the meta data beingassociated with the retrieved at least one parent level object creatinga filter to be executed against the remote database based on theretrieved at least one parent level object and based on the obtainedmeta data associated with the retrieved at least one parent levelobject; wherein the filter is combined with a second query to beexecuted at the remote database to retrieve only sub-parent levelobjects associated with the retrieved at least one parent level object.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for accessing data stored in at least one of a plurality ofremote databases, the method comprising enabling access to the pluralityof databases, at least two of the plurality of remote databases havingdifferent data structures; receiving input identifying at least one ofthe plurality of remote databases for accessing; obtaining meta datalocally stored and associated with the identified at least one remotedatabase; generating a navigation control and displaying the navigationcontrol on a display; receiving input from a user identifying an objecttype; creating and executing a first query at the identified at leastone remote database to obtain all parent level objects associated withthe at least one object type; receiving input identifying at least oneselected parent level object from the obtained parent level objects andstoring the input; obtaining meta data from a local database, the metadata relating to the at least one remote database and the meta databeing associated with the selected at least one parent level object; andcreating and executing a second query at the at least one remotedatabase to retrieve only sub-parent level objects associated with theselected at least one parent level object, wherein the second queryincludes a filter, based on the meta data and the selected at least oneparent level object, for filtering out sub-parent level objects that areonly associated with non-selected parent level objects.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for accessing data stored in at least one of a plurality ofremote databases, the method comprising enabling access to the pluralityof databases, at least two of the plurality of remote databases havingdifferent data structures; receiving input from a user identifying oneof the plurality of remote databases for accessing; obtaining meta datalocally stored and associated the identified one remote database;generating a navigation control and displaying the navigation control ona display; receiving input from the user identifying an object type;receiving input from the user identifying at least one parent objectassociated with the selected object type; and retrieving from the remotedatabase only those children objects that are associated with theidentified parent objects based on a query and a filter, the filtercreated based on the meta data associated with the identified one remotedatabase and the selected at least one selected parent object.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for accessing data stored in at least one of a plurality ofremote databases, the apparatus comprising a sieve module configured tocreate custom, dynamic filters to be executed against the plurality ofremote databases based on selected parent level objects and based onmeta data associated with the plurality of remote databases, the filter,when combined with a query, enables selection of only those childrenobjects associated with the selected parent level objects; a containermeta data management module configured to receive and process requestsfor meta data associated with the plurality of remote data bases; and acontainer query generator configured to create and execute queries basedon meta data provided by the container meta data management module andfurther based on filters created by the sieve module and furtherconfigured to provide the results of the queries for display.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for accessing data stored in at least one of a plurality ofremote databases and storing data associated with the accessed data, themethod comprising generating a navigation control for navigating aremote database based on locally stored meta data; displaying thenavigation control; receiving input from the user identifying an objecttype; receiving input from the user identifying at least one parentobject associated with the selected object type; retrieving from theremote database only those children objects that are associated with theidentified parent objects based on a query and a filter, the filtercreated based on the meta data associated with the identified one remotedatabase and the selected at least one selected parent object;retrieving from the local database data associated with the retrievedchildren objects; and displaying the retrieved children objects and thedata associated with the retrieved children objects.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for accessing data stored in at least one of a plurality ofremote databases and storing data associated with the accessed data, theapparatus comprising a sieve module configured to create custom filtersto be executed against the plurality of remote databases based onselected parent level objects and based on meta data associated with theplurality of remote databases, the filter, when combined with a query,enables selection of only those children objects associated with theselected parent level objects; a container meta data management moduleconfigured to receive and process requests for meta data associated withthe plurality of remote data bases; a container query generatorconfigured to create and execute queries based on meta data provided bythe container meta data management module and further based on filterscreated by the sieve module and further configured to provide theresults of the queries for display; and a compliance database configuredto store meta data associated with the plurality of remote databases andfurther configured to store compliance information associated withparent and children objects stored in the plurality of remote databases.

Alternatively, systems, methods and computer-readable mediums,consistent with the principles of some embodiments of the inventionprovide for a method for associating requirements included incontainers, the method comprising receiving input identifying at leasttwo remote containers; accessing meta data from a local databaseassociated with the identified at least two containers; displaying theidentified at least two containers and at least one of the requirementsof each of the identified at least two containers simultaneously on adisplay in accordance with the accessed meta data; enabling linking oftwo requirements, wherein the two requirements are not located withinthe same container; receiving input identifying two requirements to belinked; displaying an indication that the two requirements are linked;and storing information relating to the link of the two requirements inthe local database.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments of the invention and,together with the description, explain the principles of the invention.In the drawings:

FIG. 1 is an exemplary system environment for implementing the featuresconsistent with some embodiments of the present invention;

FIG. 2 is an exemplary block diagram of the components of a clientcomputing, consistent with principles of some embodiments of the presentinvention;

FIG. 3 is an exemplary block diagram of the components of a servercomputing device, consistent with principles of some embodiments of thepresent invention;

FIG. 4 depicts an exemplary block diagram of the components of a servercomputing device communicably linked to databases, consistent withprinciples of some embodiments of the present invention;

FIG. 5 depicts an exemplary block diagram of the components included incontainer interface management module, consistent with the principles ofsome embodiments of the present invention;

FIG. 5A depicts an exemplary data structure diagram of a data structurerelating to a software application, consistent with the principles ofsome embodiments of the present invention.

FIGS. 6A-6B depict an exemplary flow diagram of the steps performedwithin the system environment, consistent with the principles of someembodiments of the present invention;

FIGS. 7-10 depict exemplary screen shots presented to a user, consistentwith the principles of some embodiments of the present invention;

FIG. 11 depicts an exemplary flow diagram of the steps performed withinthe sieve module, consistent with the principles of some embodiments ofthe present invention;

FIG. 12 depicts an exemplary flow diagram of the steps performed withinthe container interface management module, consistent with theprinciples of some embodiments of the present invention;

FIG. 12A depicts an exemplary container query structure that does notinclude the filter created by the sieve module, consistent with theprinciples of some embodiments of the present invention;

FIG. 12B depicts an exemplary container query structure that includesthe filter created by the sieve module, consistent with the principlesof some embodiments of the present invention;

FIG. 13 depicts an exemplary structure of requirements in requirementsdatabase, consistent with the principles of some embodiments of thepresent invention;

FIG. 14 depicts an exemplary diagram setting forth the filteringfunction, consistent with the principles of some embodiments of thepresent invention;

FIGS. 15-16 depict exemplary screen shots, presented to a user, relatingto a federation module, consistent with the principles of someembodiments of the present invention;

FIG. 17 depicts an exemplary data structure diagram of a data structurerelating to a federation module, consistent with the principles of someembodiments of the present invention.

DETAILED DESCRIPTION

Reference will now be made in detail to the features of the principlesof the present invention, examples of which are illustrated in theaccompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.

It is a feature of some embodiments of the invention to provide thecapability and process for demonstrating compliance with one or morelarge and complex volumes of requirements that is less complicated,easier to carry out and more efficient than in the prior art.

In addition to capturing compliance information associated withrequirements, this system, consistent with some embodiments of theinvention, can be used for other Government or commercial purposes suchas capturing information to qualify intelligence data in an intelligencedatabase or capturing customer survey information on the contents of acompany's inventory databases. It may be appreciated that the systemsand methods discussed herein may be applicable to numerous communitiesand applications as follows:

Intelligence community—The federation module could enable two casemanagement systems from two different agencies to fuse intelligence andinvestigative information. Data collected by one agency, against acriminal suspect, and stored in their case management system could belinked with related records in different agencies case management systemto provide a comprehensive picture of evidence that could enable thejustification for prosecution.

Building industry/architects—The ACART compliance assessment tool couldenable streamlined identification and assessments of building plansagainst building codes and regulations.

Power industry—The ACART compliance assessment tool could enable newpower plant designs to be evaluated against Government regulations. Itcould be used as the certification tool by the Government to approvedevelopment of all new power plants.

Pharmaceuticals industry—The ACART compliance assessment tool couldenable Pharmaceuticals companies to document new drug developmentscompliance against FDA laws and regulations.

Oil companies—The ACART compliance assessment tool could enable oilcompanies to document drilling and refinement operations compliance toEPA regulations. It could also enable visibility and monitoring by theEPA to status and plans of Oil company operations.

Furthermore, this system can be used to associate specific records inone container with requirements in another container.

Generally, principles consistent with some embodiments of the inventionprovide for the capability for assessing and reporting compliance of anentity (e.g., systems, programs, policies, agency etc.) against one ormore containers managed by 3^(rd) parties. These containers may bewritable. Alternatively, one or more containers may be read-onlycontainers wherein data may not be written to the containers.

Additionally, it provides features, consistent with some embodiments ofthe invention, that enable: interfacing with read-only containersmanaged by 3^(rd) parties; navigation through the contents of acontainer; filtering of non applicable requirements in the containers;joining and integrating compliance information, stored within in theCompliance Database, and the associated requirements stored in thecontainers; and storing, managing and reporting of complianceinformation associated with specific requirements located in a containermanaged by a 3^(rd) party. Specific features of the system, consistentwith some embodiments of the invention, may include implementing aprocess within a sieve module which enables the user to select highlevel requirements and subsequently use that selection along with theexisting parent to child relationships of requirements within thearchitecture or requirements database to automatically filter onlyrelevant sub-requirements; enabling linking of requirements in onecontainer with requirements in other containers; wherein complianceinformation associated with a requirement in container that is linked toa requirement in another container enables reuse of the complianceinformation; joining and integrating information from the ComplianceDatabase with the associated requirements in the containers, wherein itis possible to prevent storing of requirements in the ComplianceDatabase, as only pointers to the requirements are stored in theCompliance Database.

As discussed herein, it may be appreciated that the terms “object” and“requirement” may be used interchangeably. Further, it may beappreciated that containers are databases storing requirements.

System Architecture

FIG. 1 is an exemplary diagram of a system environment 100 forimplementing the principles consistent with some embodiments of theinvention. The components of system environment 100 can be implementedthrough any suitable combinations of hardware, software, and/orfirmware. As shown in FIG. 1, system 100 includes a plurality ofcomputing devices 101, 102 communicating with server 105 via network104. Further, while only two computing devices 101,102 are depicted inFIG. 1, it may be appreciated by one of ordinary skill in the art thatmore devices may operate within the system environment. Each of thecomputing devices 101, 102 may be communicably linked to databases 112,114, respectively. Databases 112, 114 may be implemented as containers,or requirements databases, as discussed herein. It may be appreciatedthat while only one database appears directly communicably linked toeach of computing devices 101, 102, more than one database may bedirectly communicably linked to one or more of computing devices 101,102.

Computing devices 101, 102 may store and access data stored in databases112, 114, respectively. Computing devices 101, 102 may be serversoperating on network 104 and may be operated by an entity having a setof requirements or architecture for compliance. It may be appreciated byone skilled in the art that databases 112, 114 may be directlycommunicably linked to computing devices 101, 102, or may becommunicably linked to computing devices 101, 102 through network 104.

Computing devices 101, 102 may be implemented as a server that areconfigured operate CASE tools that permit data mining and access to therequirement information stored in databases 112, 114.

Network 104 may be implemented as the Internet. It may further beappreciated that alternatively, network 104 may be implemented as anylocal or wide area network, either public or private. It may further beappreciated that there may be additional networks operating inenvironment 104 wherein additional devices may interact with server 105.

System environment 100 further includes a plurality of computing 108,110 communicating with server 105 via network 104. While only twocomputing devices 108, 110 are depicted in FIG. 1, it may be appreciatedby one of ordinary skill in the art that more computing devices mayoperate within the system environment 100. Computing devices 108, 110may be operated by a user of the compliance assessment tool through thecommunicable link with server 105.

Computing devices 108, 110 may be implemented as a personal computer, aworkstation, or any personal handheld device, i.e., a Personal DigitalAssistant (PDA), a cellular telephone, or any other device that iscapable of operating, either directly or indirectly, on network 105 andis capable of accessing application software 308. Computing devices maybe configured to communicate with server 105. Computing devices 108, 110may be operated by users seeking to obtain and provide complianceassessment information.

System environment 100 includes server 105 and database 106. Database106 may be communicably linked to server 105. Server 105 may store,access, modify, etc. data stored in database 106. Database 106 may storeinformation related to compliance information, container meta data, asdiscussed herein, user identifying information, etc.

FIG. 2 depicts an exemplary block diagram of computing devices 108, 110that may be implemented in system environment 100, consistent with theprinciples of some embodiments of the present invention. As shown inFIG. 2, computing devices 108, 110 include memory 202, network interfaceapplication 204, secondary storage 206, application software 208including client side federation module 214, central processing unit(CPU) 210, and input/output devices 212. Network interface 204 may beimplemented as any conventional browser application to facilitateinteraction with software applications on server 105 through network104. Input/output devices 212 may include, for example, a keyboard, amouse, a video cam, a display, a storage device, and/or a printer.

FIG. 3 depicts an exemplary block diagram of server 105 that may beimplemented in system environment 100, consistent with the principles ofsome embodiments of the present invention. As shown in FIG. 3, server105 includes memory 302, network interface application 304, secondarystorage 306, application software 308, central processing unit (CPU)310, and input/output devices 312. Application software may include CASEassessment tool 314, federation module 316, and database managementapplication (not shown). Network interface 404 may be implemented as anyconventional browser application to facilitate interaction withapplications on computing devices 101, 102 and computing devices 108,110 on network 104. Input/output devices 414 may include, for example, akeyboard, a mouse, a video cam, a display, a storage device, and/or aprinter. Server 105 may be communicably linked with computing devices101, 102 and computing devices 108, 110 using application software 308.

Server 105 includes application software 308 that is used to access andprovide compliance assessment information. As shown in FIG. 4,Compliance Assessment Tool 314 includes requirements and complianceinformation integration module 402, container navigation module 404,container interface management module 406, and compliance database 408.

Compliance database 106 includes compliance information 410 andcontainer meta data 412. Architectures/requirement databases (e.g.containers) 112 and 114 are also depicted in FIG. 4. As noted above,these databases 112 and 114 may reside on network 104, either at onecomputing device or at multiple computing devices. Complianceinformation may be any information related to the user's compliance withthe requirement. The compliance information may be entered by the userand stored in compliance database 106 for present or future access. Itmay further be appreciated the compliance information may be entered byother users that may or may not be associated with the same organizationof the user. When the system checks for stored compliance information inlocal database 106, any compliance information that is stored thereinmay be accessed and presented to the user as discussed herein.Alternatively, only that information that the user has permission toview may be accessed and presented.

Compliance database 106 provides a repository of container meta data 412necessary for the Compliance Assessment Tool to query, navigate andsearch requirements in a container which is registered in the ComplianceAssessment Tool. Further, compliance database 106 stores and managescompliance information along with the pointers to the specificrequirements for which that compliance information is associated.

FIG. 5 depicts components included in container interface managementmodule 406. Container interface management module includes sieve module540, container query generator 542 and container meta data managementmodule 544.

FIG. 5A depicts an exemplary data structure diagram of a data structurerelating to software application 308 and system 100, consistent with theprinciples of some embodiments of the present invention.

System Flow

FIGS. 6A-6B depicts an exemplary flow diagram of the steps performedwithin system 100 consistent with the principles of some embodiments ofthe invention. The following example provides a description of how thesystem would enable a user to navigate through a container and recordcompliance information for a fictional entity (i.e., Program Z) againstrequirements in that container Business Enterprise Architecture (i.e.,BEA 4.1).

Prior to using the system to assert compliance to requirements in acontainer, the administrator of the system may register the meta datafor each container. The container meta data stored in the ComplianceDatabase holds technical information for operating the ComplianceAssessment Tool to establish a network connection to the containers. Italso stores the physical attributes as to how information (e.g.,requirements, inventory items, intelligence data, etc.) is stored andstructured (i.e., the relationships between the different objectscontaining requirements, inventory items or intelligence data) in thecontainer. This information facilitates a system, using requirementinformation and pointer information to access and retrieve informationstored in the containers. Each of the containers may have their ownproprietary meta data that facilitates access and retrieval ofrequirement information.

The process begins when the user selects an assessment (in this case theuser selects “Program Z”) (FIG. 6A, step 602). FIG. 7 is an exemplaryscreen shot that may be presented to the user in order to enable theuser to select “Program Z.” “Program Z” is a compliance assessmentestablished for the purpose of assessing, measuring and reportingcompliance against the requirements in the BEA 4.1 container. Anadministrator of the system may create Program Z. In creating theProgram Z, one or more containers may be identified by associating alink to the container(s) with Program Z (i.e., BEA 4.1).

Once “Program Z” has been selected the Container Navigation Module 404accesses, or pulls, the container meta data (via the Container Meta DataManagement Module 544) for BEA 4.1, from the Compliance Database, 106necessary to build the container navigation control (FIG. 6A, step 604).Specifically, object types and relationships between object types arequeried from the Compliance Database 106 and that information is used tocreate the navigation control. FIG. 8 depicts an exemplary screen shot,presented to a user, depicting a tree structure representing thestructure of the selected Container (i.e., BEA 4.1).

A request is made by the user via the container navigation module 404 toview specific contents of the BEA 4.1 Container. (i.e., the user clickson a menu item, in this example the user select the menu item/objecttype/requirement type Business Enterprise Priority “BEP”) (FIG. 6A, step606). It may be appreciated that if more than one container isassociated with “Program Z”, the user may select the container from thenavigation control he wishes to access requirements from. (See FIGS. 7and 8)

The container meta data management module 544 takes the request (e.g.,the container name and container object type) and extracts the meta datafrom the Compliance Database needed to build a query that will beexecuted against the BEA 4.1 container for the requirements requested bythe user (i.e., BEP) (FIG. 6A, step 608).

The container meta data management module 544 provides the containerquery generator 542 with the meta data necessary to build an unfilteredquery for the selected object in the container.

The container meta data management module 544 also provides the sievemodule 540 with meta data associated with the parent object(s) for theobject type selected by the users. The sieve module 540 will use thisinformation to build a filter to be used by the container querygenerator 542.

The container query generator 542 takes the meta data passed to it viathe container meta data management module 544 and builds the query thatwill be executed against the BEA 4.1 container (e.g., or any containermanaged by a 3^(rd) party and registered in the Compliance Database)(FIG. 6A, step 612). This query does not contain any filter informationat this time.

The sieve module 540 takes the meta data provided from the “ContainerMeta Data Management Module”, builds a query to get any parentrequirements that have been previously selected by a user. The query isexecuted against the Compliance Database in order to get the necessaryinformation to build the filter. (FIG. 6A, step 614).

The sieve module 540 takes the results of this query and transforms itinto a filter that will be used by the container query generator 542.The filter will limit the requirements being queried from the containerto those for which a parent requirement has been selected by the user(FIG. 6A, step 616).

The container query generator 542 takes the filter generated by thesieve module and combines it with the “Container Query” and executes themodified “Container Query” against the BEA 4.1 container (FIG. 6A, step618). This modified query will ensure that only applicable requirementsare retrieved from the container and displayed to the user.

This process may be repeated, as discussed herein, in order to retrieveall of the relevant children of the parent level objects.

The requirements 85 compliance information integration module 402receives the results of the query executed against BEA4.1 and begins togo through each of its records. For each record, the requirements 86compliance information integration module 402 builds a query to searchfor any compliance information that may have been previously stored inthe Compliance Database (FIG. 6B, step 620). This compliance informationmay include plain text (e.g., text entered through text, drop down boxesor checkboxes) and in the case where requirements have been linked, thecompliance information is in the form of pointer to one or morerequirements in different containers. Any compliance information foundin the Compliance Database is joined with the requirements from thecontainer.

The resulting combination of the requirements from the container and theassociated compliance information from the Compliance Database ispresented to the user (FIG. 6B, step 622). FIGS. 9 and 10, providesexemplary screen shots of requirements combined with complianceinformation. FIG. 9 depicts the results presented to the user whenrequirements of type “BEP” are selected by the user and FIG. 10 depictsresults presented to the user when requirements of type “Data Entity”are selected by the user.

If the user does choose to enter new or modify existing complianceinformation the requirements & compliance information integration module402 saves the compliance information along with the pointers to theassociated requirements in the Compliance Database 106.

In the case where the user wants to align or link a specific requirementwith a requirement in a different container, the user would enterpointer information to that requirement resident in the other container.A different screen or set of screens may be used when linkingrequirements. They would enable the user to navigate through therequirements in a different container, select those requirements thatare to be linked, add additional text clarifying the relationshipbetween the linked requirements and save that information in theCompliance Database.

Sieve Module 540

A purpose of the sieve module 540 is to ensure that only applicablerequirements are presented to the user of the Compliance Assessment Tool(i.e., non relevant requirements are automatically filtered out basedcompliance information stored for parent requirements). In this case,the compliance information is the selection of the requirement by theuser. The sieve module takes container meta data associated with theobject selected by the user (provided by the Container Meta DataManagement Module) and looks for compliance information stored in thecompliance database for parent level requirements and extracts thepointer information (e.g., container id, table name, primary key value)for those requirements that have associated compliance information.Using this pointer information associated with the parent levelrequirements the Sieve Module builds a filter that will be joined withthe query that will be executed on the container database. The filterwill limit the requirements being queried from the container to thosefor which a parent requirement has been previously selected by the user.

FIG. 11 depicts an exemplary flow diagram of the steps performed bysieve module 540. As shown in FIG. 11, sieve module creates a filterused to extract requirement information from a remote database, i.e.,containers 112, 144. The sieve module creates and executes a first queryat compliance information 410 at compliance database 106 to retrieve atleast one parent level object previously selected by a user (FIG. 11,step 1102).

Sieve module then retrieves pointer information pointing to the at leastone parent level object stored in a remote container based on theexecuted query (FIG. 11, step 1104).

Sieve module then obtains meta data from container meta data 412 atcompliance database 106 via the container meta data management module544, the meta data relating to the remote database and the meta databeing associated with the retrieved at least one parent level object(FIG. 11, step 1106). The sieve module then creates and executes a queryagainst compliance information 410 at compliance database 106 toretrieve any compliance information associated with the selected atleast one parent level object.

Sieve module then creates a filter to be executed against the containerdatabase 112, 114 based on the retrieved pointer information pointing tothe at least one parent level object, the retrieved complianceinformation associated with the selected at least one parent levelobject, and based on the obtained meta data associated with theretrieved at least one parent level object (FIG. 11, step 1108). Thecreated filter is passed to the container query generator 542. At thecontainer query generator 542, the filter is combined with a secondquery to be executed at the container database 112, 114 to retrieve onlysub-parent level objects associated with the retrieved at least oneparent level object (FIG. 11, step 1110).

The sub-parent level objects are then presented to the user on thedisplay. The system then enables the user to select at least one of thesub-parent level objects. Once the system receives an indication thatthe user had made all of his selections. This process is repeated, asnoted above, in order to obtain the grandchildren of the selectedsub-parent (or children) objects. (FIG. 11, step 1112). If there aresub-parent or children level objects selected by the user, upon receiptof an indication by the user, i.e., a request to obtain the relevantgrandchildren, processing proceeds to step 1106 in FIG. 11. If there areno additional sub-parent level objects selecting, the sieve moduleprocessing is concluded.

Container Interface Management Module 406

FIG. 12 depicts an exemplary flow diagram of the steps performed bycontainer interface management module 406 to facilitate access andretrieval of data stored in containers 112, 114. Container interfacemanagement module 406 enables access to the plurality of containers 112,114. It may be appreciated by one skilled in the art that container 112may be have a different data structure than the data structure ofcontainer 114.

Container interface management module 406 receives input identifying atleast one of the plurality of containers for accessing (FIG. 12, step1202).

Container interface management module 406 obtains meta data locallystored and associated the identified at least one container (FIG. 12,step 1204).

Container Navigation Module 404 generates a navigation control anddisplaying the navigation control (FIG. 12, step 1206).

Container interface management module 406 receives input from the useridentifying an object type related to and identifying a remote containerand establishes and manages the connection to the remote database(s).Container interface management module 406 creates and executes a firstquery at the identified container(s) to obtain all parent level objectsassociated with the selected at least one object type. Containerinterface management module 406 receives input identifying at least oneselected parent level object from the obtained parent level objects (anobject or requirement within the identified remote container) and storesthe input of this compliance information in compliance information 410in compliance database 106. Container interface management module 406queries (a second query) compliance database 106 for meta data, the metadata relating to the identified at least one container and the meta databeing associated with the selected at least one parent level object.Container interface management module 406 creates and executes a thirdquery at the at least one remote database to retrieve only sub-parentlevel objects associated with the selected at least one parent levelobject. The third query includes a filter, based on the obtained metadata, retrieved compliance information, and the selected at least oneparent level object, for filtering out sub-parent level objects that areonly associated with non-selected parent level objects. The filter isdiscussed above with regard to the Sieve module.

In other words, the second query, including the filter, is executed atthe at least one remote database and only selects those sub-parent levelobjects that are associated with the parent level objects. Thosesub-parent level objects that are associated with parent level objectsthat are not selected, are not retrieved with the results of theexecuted second query.

Container Meta Data Management Module 544

A purpose of the container meta data management module 544 is to processrequests and provide the needed meta data for the container navigationmodule 404, sieve module 540 and the container query generator 542. Forthe container navigation module it pulls the meta data needed (includingobject names and the relationship between the objects) to build thenavigation control. For the sieve module it retrieves the container metadata associated with the parent of the object selected by the user onnavigation control. The sieve module uses this information to build thefilter that will be used by the container query generator. For thecontainer query module it extracts the all the container meta dataneeded to build executable queries (e.g., table names storing therequirements and the columns in those tables which are to be displayedto the user).

Container Query Generator 542

A purpose of the container query generator is to build and executequeries against the containers to retrieve requirements requested by theusers of the compliance assessment tool. Prior to executing queriesagainst a container the container query generator will apply any filtersproduced by the sieve module. FIG. 12A depicts an exemplary containerquery structure that does not include the filter created by the sievemodule.

FIG. 12B depicts an exemplary container query structure that includesthe filter created by the sieve module. Details regarding the componentsof the query and the filter are shown in the figure. Attributes, tables,etc., may be found with regard to the data structure diagram shown inFIG. 5A.

Description of Requirements Filtering

This section provides a description of how requirements are filteredbased on compliance information stored in the compliance database. Inthis example an individual is using the compliance assessment tool toperform a compliance assessment of an entity (e.g., systems, programs,policies, agencies etc.), “Program Z”, against the requirementscontained in “Requirements Database X”. FIG. 13 provides a depiction ofa container (e.g., requirements database) storing 3 levels ofrequirements and sub-requirements.

FIG. 14 explains the filtering functionality of the ComplianceAssessment Tool and what information is stored in the system (e.g., inthe system's Compliance Database). It also demonstrates that thecontents of the “Requirements Database X” do not need to be changed(i.e., it is read only). The system may only read information from“Requirements Database X” but stores pointers to requirements andcompliance information in the Compliance Database. As can be seen instep 1, the user desires to see all of the high level requirements(parent objects) that are relevant to “Program Z”. To facilitate this,the user transmits a request to list all level 1 (parent) requirements.The compliance assessment tool, in accordance with the processesdiscussed herein, queries all level 1 requirements from the requirementsdatabase (container) and presents, displays, the list to the user.

At step 2, the user identifies Level 1 Req B as being applicable byselecting Level 1 Req B. The compliance assessment took stores pointerinformation in the compliance database 106 for Level 1 Req B.

The user then desires to see what level 2 (sub-parent) requirements maybe relevant to “Program Z” and submits a request for the level 2requirements. Compliance assessment tool, based on the previouslyselected Level 1 Req B, queries only those level 2, (sub-parent) subrequirements (Level 2 Req F and Level 2 Req G) and presents them to theuser on the display.

The user then identifies Level 2 Req G as applicable to “Program Z” byselecting Level 2 Req G. Compliance assessment tool stores pointerinformation in the compliance database 106 for Level 2 Req G.

The user then desires to see the Level 3 Requirements that may berelevant to “Program Z” and submits an appropriate request. Based on theselected Level 2 Req G, compliance assessment tool accesses only thosesub requirements (Level 3 Req P and Level 3 Req Q) from the containerand presents, displays, them to the user.

The user makes a determination that “Program Z is compliant to Level 3Req P and not compliant to Level 3 Req Q. The user submits thiscompliance information and the compliance assessment tool stores pointerand compliance information in the compliance database for Level 3 Req Pand Level 3 Req Q.

The user may then request to view all of the compliance informationassociated with “Program Z”. In response to this request, the complianceassessment tool queries the pointers and compliance information from thecompliance database for “Program Z”. Based on the pointers torequirements, the compliance assessment tool queries only relevantrequirements from the requirements database X, the container, and mergesthis information with the query containing the compliance information.The result of the merge is a list of requirements along with complianceinformation. This list is presented or displayed to the user.

The Compliance Assessment Tool joins information from the requirementsdatabase with the information from the Compliance Database. It furtherprovides the ability to transpose compliance assessment information overrequirements stored in requirements databases located in geographicallydispersed locations.

A data structure within the Compliance Database enables an infinite setof requirements databases (i.e., containers) to be registered in theCompliance Database; an infinite set of attributes for each particularrequirement to be registered and subsequently pulled from therequirements databases; and an administrator of the system to configurehow users can navigate through a requirements database. (See FIG. 8).When an administrator registers a container he/she enters the meta datafor that container which defines what and how information is stored andstructured in the container.

Further, the Compliance Assessment Tool stores compliance informationfor an entity or a group of entities; and links (e.g., federation,alignment etc.) requirements stored in different containers (e.g.,requirements databases, intelligence databases, inventory databasesetc.). This provides the capability to create one logical containerbased on the contents of two or more containers registered in theCompliance Assessment Tool.

Further, the Compliance Assessment Tool provides a code generator thatenables data to be queried from a requirements database, or container,regardless of underlying requirements database physical structure (e.g.,relational database, XML files, etc. . . . ); a code generator thatautomatically filters out non applicable sub-requirements based onpreviously selected parent requirements; and code generator thatautomatically integrates directly with CASE tools.

A method for assessing compliance of an object vis-à-vis requirementsstored in one or more requirements databases, consistent with theprinciples of some embodiments of the invention, as discussed herein,comprising the following steps:

a) Configure the Compliance Database with container meta data needed totraverse that requirements database, said requirements database havingrelevant requirements to the object with at least one associated levelof sub-requirements.

b) Select a broad requirement from the container and retrieving allsub-requirements associated there within.

c) store in said Compliance Database pointers for the selectedrequirements and associated sub-requirements.

d) Integrate information from the Compliance Database and the contentsof the container in order to display the requirements and the complianceinformation side by side. (see FIGS. 9 and 10).

Federation Module

The federation module enables a user to create links to relatedrequirements between containers. As the user is navigating throughrequirements in a container the user may associate, or link,requirements from different containers.

The term “facet” may be interchangeable with the term “object type”. Thefollowing terms may be defined as follows: Containers—represents adatabase containing an architecture or a set of requirements. FederalContainer—The base container in which other containers are aligned to.State Container—The container(s) that is aligned to the “FedereeContainer”. Integrated Container—A container that stores all thecontents of the Federee Container plus all the aligned contents of theFederated Container(s). Facet/Sieve Object)—a type of object (e.g.,operational activity, process, business rule, etc. . . . ) that existswithin a container. Container object—an instantiation of a facet.(analogy: “operation activity” is to “Calculate Entitlement” as “facet”is to “container object”: facet is the table, container object is a rowin that table). Assertion Target—the item (e.g., portfolio, system,power plant, drug, policy, etc.) which is being evaluated forcompliance. Federation Package—represents that a relationship betweentwo containers have been established using the Federation Tool, ormodule. Alignment Values—These provide the text phrase that defines therelationship (e.g., “aligns to”, “is the same as”, “extends”, etc.)between container objects. Copy Attribute—An attribute for eachAlignment Value used to identify the business rule for copying assertiondata (e.g., for relationship defined as “is the same as” the copyattribute could be “Copy Assertion Data”. For a relationship defined as“extends” the copy attribute could be “Copy Assertion Dataw/Conditions”).

The ACART Federation Designer may be accessed by a software applicationresiding on the user's computing device 108, 110, i.e., a FederationDesigner application. The Designer may display unlimited number ofcontainers for federation. Users may be allowed to display/hide any/allcontainers with which they have access rights to federate (e.g., basedon what is in the “user_to_container” table). The designer may provideexpanding/contracting of unlimited number of hierarchical containerobjects (i.e., requirements) in each container.

The designer may allow users to select a container object and drag/dropa line from that object (tree node) to another container's object(s).The designer may allow one container object to be associated with one ormore other container objects. Additionally, container object A can beassociated to container object B at the same time container object B isassociated to container object A (e.g., relationships between containerobjects is based on the direction in which container object B isassociated with container object A.

Relationship lines may be selectable and users may set properties ofthat relationship. Properties may consist of a description of arelationship (i.e. ‘is equal’, ‘extends’, ‘is similar’, etc.), therequirements that are related and comments for the relationship. When auser double-clicks container objects (tree nodes), a small window mayopen displaying the attribute information for that object. Attributeinformation may include the name of the requirement, a description ofthe requirement, an identification number of the requirement,identifying information of the creator of the requirement, editorialcomments by any users, history of the requirement, etc.

The designer may provide printing and print previewing of federatedcontainers. The designer may save the position of all containers fromthe user's last session and will allow users to save different sessions.The designer may incorporate the ACART Discovery service accessiblethrough the designer menu bar. This may support federating containers byenabling users to search the different containers for similar containerobjects. In order to generate a SQL query to perform a discovery search,the container meta data management module retrieves the meta data forall of the containers the user wishes to search in. The meta data isthen passed to the container query generator to create a set of queriesto search all of the containers designated by the user. The discoveryservice may thus facilitate a key word search for key words in multiplecontainers, wherein the containers may have different data structures.

Operations of the Federation Module

Through the ACART web interface an individual may be given access andassigned the role as “Architect”. The user given the role of “Architect”loads the “Federation” module onto their computing device 108, 110 andconfigures it to point to a particular instance of ACART. Afterconfiguration of the Federation module, the “Architect” creates a“Federation Package”. When creating the “Federation Package” the“Architect” selects a minimum of two “Containers” to align/federate. The“Architect” then identifies the object types from the differentcontainers that will be aligned (e.g., “Operational Activities” from BEA5.0 will be aligned with “Master Capabilities” from the ASCA 3.0 etc.).Additionally, the “Architect” will define the “Alignment Values” (e.g.,“aligns to”, “is the same as”, “extends”, etc.) that represent how theseobject types can be related. FIG. 15 depicts an exemplary screen shotthat may be presented to a user enabling the creation and configurationof a “Federation Package”.

Alignment Phase of the Federation Module

During the alignment phase, the “Architect” runs the Federation Moduleand selects a “Federation Package”. Within a single screen theFederation Module brings up a separate panel for each container, anadditional panel to display information (e.g., the attributes of anobject which have been registered in ACART and resident within thecontainer) for a selected object plus a panel to display therelationship information. FIG. 16 is an exemplary screen shot, presentedto a user showing the different containers and requirements includedtherein.

The “Architect” navigates through each container (e.g., using a treecontrol) looking for container objects to align. When two objects, onefrom each container, have been identified as needing to be aligned, the“Architect” selects from the top menu a toggle switch that enables himto draw lines (e.g., make associations). He/she then connects the twoobjects and enters the information, in the 3^(rd) panel, associated withthe relationship. Alternatively, the relationship between objects may bemade using drop down menus next to each requirement that display astructured list of requirements from the different containers. Anadditional panel for each container panel will allow the informationassociated with the selected object to be displayed. When making theassociation between container objects the direction is indicated byarrows. The association, or link, between the container objects may bestored in compliance database 106.

When browsing through a container the user may use the “DiscoveryService” to find objects. Using the results of the “Discovery Service”the tree view of the container may open up to the objects that are amatch.

When aligning two or more container the user may selectively hiderelationship lines based on “Object Alignments”. The user may accessthis functionality from the Actions menu item. When accessing thisfunctionality the user may be presented with a grid containing all the“Object Alignment” sets for the federation package along with a toggleswitch next to each record that is used to specify whether to display orhide the relationships.

Reporting & Analysis Phase of Federation Module

Quick Align—a function that automatically creates a relationship betweenobjects in different containers where the name, type and description arethe exact same or where user specified criteria are satisfied.

Copy assessments associated with one container to assessments associatedwith a federated container. The copy functions may create a newassessment (for each assessment associated with the “Federal” container)with the same name and attributes except that it will be associated withw/ the “State” container. This may only be available when a “FederationPackage” is opened. The type of copy functions available may be: GlobalCopy—Copies all assertion data for all assessments against one containerto assessments associated with another container. Individual Copy—Copiesonly assertion data for a selected set of assessments.

Create Integrated Container. This function creates a new container andpopulates it with all the contents of the “Federal” container along withall the contents of the “State” container(s) that have been aligned.

Alternatively, it may be appreciated that a user, using the federationmodule, may copy requirements from one container and paste them to adifferent container. When the requirement is copied into the targetcontainer, it inherits the relationships of the requirements in thetarget container.

Reports

It may be appreciated that various reports may be generated using thefederation module. For example, an alignment report may be generatedthat provides a table of listing all the Federal container objects(displaying attributes of those objects may be optionally provided),that have been aligned to, on one side of the report and the containerobjects associated with the State container(s) on the other side of theReport. This report, alternatively, may be limited by to a set ofselected object types.

Analytical Tools

It may further be appreciates that analytical tools may be provided inthe federation module. For example a federation browser may provide agraphical tool (similar to a node tree) to navigate through thealignments made between containers. When looking at the objects in thebrowser, the user may see the name and description of the object alongwith being able to distinguish the container to which the objectbelongs.

Data Structure of the Federation Module

FIG. 17 depicts an exemplary data structure contains new tables andmodification to existing tables (e.g., container_object and assertion)as previously set forth above.

Once links are created between requirements in different containers,each time a user may access one requirement in one container, the linkto the requirement in the other container may be retrieved from storagein the compliance database, i.e., local database 106.

Modifications and adaptations of the invention will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein. It is intended that the specificationand examples be considered as exemplary only, with a true scope andspirit of the invention being indicated by the following claims.

1. A method for creating a filter to extract requirement informationfrom a remote database, the method comprising: creating and executing afirst query at a local database to retrieve at least one parent levelobject previously selected by a user; retrieving the at least one parentlevel object based on the executed query; obtaining meta data from alocal database, the meta data relating to the remote database and themeta data being associated with the retrieved at least one parent levelobject; creating a filter to be executed against the remote databasebased on the retrieved at least one parent level object and based on theobtained meta data associated with the retrieved at least one parentlevel object; wherein the filter is combined with a second query to beexecuted at the remote database to retrieve only sub-parent levelobjects associated with the retrieved at least one parent level object.2. The method of claim 1, further comprising: creating and executing athird query at a local database to retrieve at least one sub-parentlevel object previously selected by a user; retrieving the at least onesub-parent level object based on the executed query; obtaining meta datafrom the local database, the meta data relating to the remote databaseand the meta data being associated with the retrieved at least onesub-parent level object; and creating a filter to be executed againstthe remote database based on the retrieved at least one sub-parent levelobject and based on the obtained meta data associated with the retrievedat least one sub-parent level object; wherein the filter is combinedwith a fourth query to be executed at the remote database to retrieveonly sub-sub-parent level objects associated with the retrieved at leastone sub-parent level object.
 3. The method of claim 1, wherein theretrieved sub-parent level objects are displayed on a display andselectable by the user.
 4. The method of claim 3, further comprising:receiving input from the user indicating selected sub-parent levelobjects, and repeating the creating, retrieving and obtaining steps forthe sub-parent level objected selected by the user.
 5. An apparatus forcreating a filter to extract requirement information from a remotedatabase, the method comprising: a memory configured to store a set ofinstructions; and a processor, configured to execute the stored set ofinstructions to perform a method for creating a filter to extractrequirement information, the method comprising: creating and executing afirst query at a local database to retrieve at least one parent levelobject previously selected by a user; retrieving the at least one parentlevel object based on the executed query; obtaining meta data from alocal database, the meta data relating to the remote database and themeta data being associated with the retrieved at least one parent levelobject; creating a filter to be executed against the remote databasebased on the retrieved at least one parent level object and based on theobtained meta data associated with the retrieved at least one parentlevel object; wherein the filter is combined with a second query to beexecuted at the remote database to retrieve only sub-parent levelobjects associated with the retrieved at least one parent level object.6. The apparatus of claim 5, wherein the method further comprises:creating and executing a third query at a local database to retrieve atleast one sub-parent level object previously selected by a user;retrieving the at least one sub-parent level object based on theexecuted query; obtaining meta data from the local database, the metadata relating to the remote database and the meta data being associatedwith the retrieved at least one sub-parent level object; and creating afilter to be executed against the remote database based on the retrievedat least one sub-parent level object and based on the obtained meta dataassociated with the retrieved at least one sub-parent level object;wherein the filter is combined with a fourth query to be executed at theremote database to retrieve only sub-sub-parent level objects associatedwith the retrieved at least one sub-parent level object.
 7. Theapparatus of claim 5, wherein the retrieved sub-parent level objects aredisplayed on a display and selectable by the user.
 8. The apparatus ofclaim 7, further comprising: receiving input from the user indicatingselected sub-parent level objects, and repeating the creating,retrieving and obtaining steps for the sub-parent level objectedselected by the user.
 9. A method for accessing data stored in at leastone of a plurality of remote databases, the method comprising: enablingaccess to the plurality of databases, at least two of the plurality ofremote databases having different data structures; receiving input froma user identifying one of the plurality of remote databases foraccessing; obtaining meta data locally stored and associated theidentified one remote database; generating a navigation control anddisplaying the navigation control on a display; receiving input from theuser identifying an object type; receiving input from the useridentifying at least one parent object associated with the selectedobject type; and retrieving from the remote database only those childrenobjects that are associated with the identified parent objects based ona query and a filter, the filter created based on the meta dataassociated with the identified one remote database and the selected atleast one selected parent object.
 10. The method of claim 9, wherein theretrieved children objects are displayed on a display and selectable bythe user.
 11. The method of claim 10, further comprising: receivinginput from the user indicating selected children objects, and retrievingfrom the remote database only those grand children that are associatedwith the identified selected children objects based on a second queryand a second filter, the second filter created based on the meta dataassociated with the identified one remote database and the selectedchildren objects.
 12. An apparatus for accessing data stored in at leastone of a plurality of remote databases, the apparatus comprising: asieve module configured to create custom, dynamic filters to be executedagainst the plurality of remote databases based on selected parent levelobjects and based on meta data associated with the plurality of remotedatabases, the filter, when combined with a query, enables selection ofonly those children objects associated with the selected parent levelobjects; a container meta data management module configured to receiveand process requests for meta data associated with the plurality ofremote data bases; and a container query generator configured to createand execute queries based on meta data provided by the container metadata management module and further based on filters created by the sievemodule and further configured to provide the results of the queries fordisplay.
 13. A method for accessing data stored in at least one of aplurality of remote databases and storing data associated with theaccessed data, the method comprising: generating a navigation controlfor navigating a remote database based on locally stored meta data;displaying the navigation control on a display; receiving input from theuser identifying an object type; receiving input from the useridentifying at least one parent object associated with the selectedobject type; retrieving from the remote database only those childrenobjects that are associated with the identified parent objects based ona query and a filter, the filter created based on the meta dataassociated with the identified one remote database and the selected atleast one selected parent object; retrieving from the local databasedata associated with the retrieved children objects; and displaying on adisplay the retrieved children objects and the data associated with theretrieved children objects.
 14. The method of claim 13, wherein theretrieved children objects displayed are selectable by the user.
 15. Themethod of claim 13, further comprising: receiving input from the userindicating selected children objects, and retrieving from the remotedatabase only those children that are associated with the identifiedselected children objects based on a second query and a second filter,the second filter created based on the meta data associated with theidentified one remote database and the selected children objects.
 16. Anapparatus for accessing data stored in at least one of a plurality ofremote databases and storing data associated with the accessed data, theapparatus comprising: a sieve module configured to create custom filtersto be executed against the plurality of remote databases based onselected parent level objects and based on meta data associated with theplurality of remote databases, the filter, when combined with a query,enables selection of only those children objects associated with theselected parent level objects; a container meta data management moduleconfigured to receive and process requests for meta data associated withthe plurality of remote data bases; a container query generatorconfigured to create and execute queries based on meta data provided bythe container meta data management module and further based on filterscreated by the sieve module and further configured to provide theresults of the queries for display; and a compliance database configuredto store meta data associated with the plurality of remote databases andfurther configured to store compliance information associated withparent and children objects stored in the plurality of remote databases.17. A computer-readable medium, storing a set of instructions, executedby a processor, for performing a method for creating a filter to extractrequirement information from a remote database, the method comprising:creating and executing a first query at a local database to retrieve atleast one parent level object previously selected by a user; retrievingthe at least one parent level object based on the executed query;obtaining meta data from a local database, the meta data relating to theremote database and the meta data being associated with the retrieved atleast one parent level object; creating a filter to be executed againstthe remote database based on the retrieved at least one parent levelobject and based on the obtained meta data associated with the retrievedat least one parent level object; wherein the filter is combined with asecond query to be executed at the remote database to retrieve onlysub-parent level objects associated with the retrieved at least oneparent level object.
 18. The computer-readable medium of claim 17,further comprising: creating and executing a third query at a localdatabase to retrieve at least one sub-parent level object previouslyselected by a user; retrieving the at least one sub-parent level objectbased on the executed query; obtaining meta data from the localdatabase, the meta data relating to the remote database and the metadata being associated with the retrieved at least one sub-parent levelobject; and creating a filter to be executed against the remote databasebased on the retrieved at least one sub-parent level object and based onthe obtained meta data associated with the retrieved at least onesub-parent level object; wherein the filter is combined with a fourthquery to be executed at the remote database to retrieve onlysub-sub-parent level objects associated with the retrieved at least onesub-parent level object.
 19. The computer-readable medium of claim 18,wherein the retrieved sub-parent level objects are displayed on adisplay and selectable by the user.
 20. The computer-readable medium ofclaim 19, further comprising: receiving input from the user indicatingselected sub-parent level objects, and repeating the creating,retrieving and obtaining steps for the sub-parent level objectedselected by the user.
 21. A computer-readable medium, storing a set ofinstructions, executed by a processor, for performing a method ofaccessing data stored in at least one of a plurality of remotedatabases, the method comprising: enabling access to the plurality ofdatabases, at least two of the plurality of remote databases havingdifferent data structures; receiving input from a user identifying oneof the plurality of remote databases for accessing; obtaining meta datalocally stored and associated the identified one remote database;generating a navigation control and displaying the navigation control ona display; receiving input from the user identifying an object type;receiving input from the user identifying at least one parent objectassociated with the selected object type; and retrieving from the remotedatabase only those children objects that are associated with theidentified parent objects based on a query and a filter, the filtercreated based on the meta data associated with the identified one remotedatabase and the selected at least one selected parent object.
 22. Thecomputer-readable medium of claim 21, wherein the retrieved childrenobjects are displayed on a display and selectable by the user.
 23. Thecomputer-readable medium of claim 22, further comprising: receivinginput from the user indicating selected children objects, and retrievingfrom the remote database only those grand children that are associatedwith the identified selected children objects based on a second queryand a second filter, the second filter created based on the meta dataassociated with the identified one remote database and the selectedchildren objects.
 24. A computer-readable medium, storing a set ofinstructions, executed by a processor, for accessing data stored in atleast one of a plurality of remote databases and storing data associatedwith the accessed data, the method comprising: generating a navigationcontrol for navigating a remote database based on locally stored metadata; displaying the navigation control on a display; receiving inputfrom the user identifying an object type; receiving input from the useridentifying at least one parent object associated with the selectedobject type; retrieving from the remote database only those childrenobjects that are associated with the identified parent objects based ona query and a filter, the filter created based on the meta dataassociated with the identified one remote database and the selected atleast one selected parent object; retrieving from the local databasedata associated with the retrieved children objects; and displaying on adisplay the retrieved children objects and the data associated with theretrieved children objects.
 25. The computer-readable medium of claim24, wherein the retrieved children objects displayed are selectable bythe user.
 26. The computer-readable medium of claim 24, furthercomprising: receiving input from the user indicating selected childrenobjects, and retrieving from the remote database only those childrenthat are associated with the identified selected children objects basedon a second query and a second filter, the second filter created basedon the meta data associated with the identified one remote database andthe selected children objects.
 27. A computer-readable medium, storing aset of instructions, executed by a processor, for accessing data storedin at least one of a plurality of remote databases and storing dataassociated with the accessed data, the method comprising: generating anavigation control for navigating a remote database based on locallystored meta data; displaying the navigation control on a display;receiving input from the user identifying an object type; receivinginput from the user identifying at least one parent object associatedwith the selected object type; retrieving from the remote database onlythose children objects that are associated with the identified parentobjects based on a query and a filter, the filter created based on themeta data associated with the identified one remote database and theselected at least one selected parent object; retrieving from the localdatabase data associated with the retrieved children objects; anddisplaying on a display the retrieved children objects and the dataassociated with the retrieved children objects.
 28. Thecomputer-readable medium of claim 27, wherein the retrieved childrenobjects displayed are selectable by the user.
 29. The computer-readablemedium of claim 27, further comprising: receiving input from the userindicating selected children objects, and retrieving from the remotedatabase only those children that are associated with the identifiedselected children objects based on a second query and a second filter,the second filter created based on the meta data associated with theidentified one remote database and the selected children objects.